home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Text Processing / Alpha 5.63 / Tcl / SystemCode / win.tcl < prev   
Encoding:
Text File  |  1993-06-27  |  3.2 KB  |  147 lines  |  [TEXT/ALFA]

  1. #=============================================================================
  2. #    Window handling routines. All procs are bound in AlphaBits.tcl.
  3. #=============================================================================
  4.  
  5. proc shrinkHigh {} {
  6.     set text [getGeometry]
  7.     set left [lindex $text 0]
  8.     set top [lindex $text 1]
  9.     set width [lindex $text 2]
  10.     sizeWin $width 150
  11.     moveWin $left 42 
  12. }
  13.  
  14. proc shrinkLow {} {
  15.     set text [getGeometry]
  16.     set left [lindex $text 0]
  17.     set top [lindex $text 1]
  18.     set width [lindex $text 2]
  19.     moveWin $left 330
  20.     sizeWin $width 146
  21. }
  22.  
  23.  
  24. proc swapWithNext {} {
  25.     set files [winNames -f]
  26.     set len [llength $files]
  27.     if {$len <= 1} return
  28.     bringToFront [lindex $files 1]
  29. }
  30.     
  31. proc nextWindow {} {
  32.     set files [winNames -f]
  33.     if {[llength $files] <= 1} return
  34.     sendToBack [lindex $files 0]
  35. }
  36.  
  37. proc prevWindow {} {
  38.     set files [winNames -f]
  39.     set len [llength $files]
  40.     if {$len <= 1} return
  41.     bringToFront [lindex $files [expr $len-1]]
  42. }
  43.  
  44. proc vertically {} {
  45.     global tileHeight
  46.     global tileWidth
  47.     global numWinsToTile
  48.     set margin 22
  49.     set names [winNames -f]
  50.     set numWins [llength $names]
  51.     if ($numWins<=1) return
  52.     if ($numWins>$numWinsToTile) {set numWins $numWinsToTile}
  53.     set height [expr ($tileHeight/$numWins)-$margin]
  54.     set height [expr {$height + $margin / $numWins}]
  55.     set width $tileWidth
  56.     set ver 40
  57.     if {$numWins == 0} {return}
  58.  
  59.     for {set i 0} {$i < $numWins} {incr i} {
  60.         moveWin [lindex $names $i] 1000 0
  61.     }
  62.  
  63.     for {set i 0} {$i < $numWins} {incr i} {
  64.         sizeWin [lindex $names $i] $width $height
  65.         moveWin [lindex $names $i] 3 $ver
  66.         set ver [expr $ver+$margin+$height]
  67.     }
  68. }
  69.  
  70. proc horizontally {} {
  71.     global tileHeight
  72.     global tileWidth
  73.     global numWinsToTile
  74.     set names [winNames -f]
  75.     set numWins [llength $names]
  76.     if ($numWins<=1) return
  77.     if ($numWins>$numWinsToTile) {set numWins $numWinsToTile}
  78.     set margin 4
  79.     set width [expr ($tileWidth/$numWins)-$margin]
  80.     set width [expr {$width + $margin / $numWins}]
  81.     set height $tileHeight
  82.     set hor 0
  83.     if {$numWins == 0} {return}
  84.  
  85.     for {set i 0} {$i < $numWins} {incr i} {
  86.         moveWin [lindex $names $i] 1000 0
  87.         sizeWin [lindex $names $i] $width $height
  88.     }
  89.  
  90.     for {set i 0} {$i < $numWins} {incr i} {
  91.         moveWin [lindex $names $i] $hor 40
  92.         set hor [expr $hor+$width+$margin]
  93.     }
  94. }
  95.  
  96. proc tiled {} {
  97.     global tileHeight
  98.     global tileWidth
  99.     global numWinsToTile
  100.     set xPan 8
  101.     set yPan 10
  102.     set xMarg 3
  103.     set yMarg 40
  104.     set yMax 50
  105.     set names [winNames -f]
  106.     set numWins [llength $names]
  107.     if ($numWins<1) return
  108.     set line 0    
  109.     set height [expr $tileHeight-$yPan*($numWins-1)]
  110.     set width [expr $tileWidth-$xPan*($numWins-1)]
  111.     
  112.     for {set i 0} {$i < $numWins} {incr i} {
  113.         moveWin [lindex $names $i] [expr $xMarg+$i*$xPan] [expr $yMarg+$line]
  114.         set line [expr $line+$yPan]
  115.         if ($line>$yMax) {set line 0}
  116.         sizeWin [lindex $names $i] $width $height
  117.     }
  118. }
  119.  
  120.  
  121. proc overlay {} {
  122.     global defHeight
  123.     global defWidth
  124.     global numWinsToTile
  125.     set names [winNames -f]
  126.     set numWins [llength $names]
  127.     if ($numWins<1) return
  128.     for {set i 0} {$i < $numWins} {incr i} {
  129.         moveWin [lindex $names $i] 3 40
  130.         sizeWin [lindex $names $i] $defWidth $defHeight
  131.     }
  132. }
  133.  
  134.  
  135. proc chooseAWindow {} {
  136.     set name [listpick [lsort [winNames]]]
  137.     if {[string length $name]} {
  138.         bringToFront $name
  139.         if [icon -q] { icon -f $name -o }
  140.        }
  141. }
  142.  
  143.  
  144. proc iconify {} { 
  145.     icon -t 
  146. }
  147.